﻿// EXP0517.cpp :
//假设有两个包含整数的vector对象，编写一段程序，检验其中一个vector对象是否是另一个的前缀。为了实现这一目标，对于两个不等长的vector对象，只需挑出长度较短的那个，把它的所有元素和另一个vector对象比较即可。例如，如果两个vector对象的元素分别是0、1、1、2 和 0、1、1、2、3、5、8，则程序的返回结果为真。



#include <iostream>
#include <vector>
using namespace std;

int main()
{
    vector<int> ivec1 = { 0,1,1,2};
    vector<int> ivec2 = { 0,1,1,2,3,5,8};
    copy(ivec1.begin(), ivec1.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
    copy(ivec2.begin(), ivec2.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
    if (!ivec1.empty()&&!ivec2.empty())
    {
        auto min = ivec1.size() < ivec2.size() ? ivec1.size() : ivec2.size();
        auto& maxVec= ivec1.size() < ivec2.size() ? ivec2 : ivec1;
        auto& minVec = ivec1.size() > ivec2.size() ? ivec2 : ivec1;
        vector<int> tempVec = { maxVec.begin(),maxVec.begin() + min };
        if (minVec==tempVec)
        {
            cout << "一个vector对象是另一个的前缀" << endl;
        }
        else
        {
            cout << "一个vector对象不是另一个的前缀" << endl;
        }
    }
    return 0;
}

